package Example.threadLocl;

/**
 * ThreadLocal 的使用
 *
 * @author Wang Renlei
 * @Date 2020/7/3
 */
public class RequestHolder {

    private final static ThreadLocal<Long> requrestHolder = new ThreadLocal<>();

    /**
     * 请求进入后端服务器，但没有进行实际处理的时候
     * 可以使用过滤器 Filter
     *
     * @param id
     */
    public static void add(Long id) {
        requrestHolder.set(id);
    }

    public static Long getId() {
        return requrestHolder.get();
    }

    /**
     * 在请求结束之后，调用此方法
     * 可以使用拦截器  Interceptor
     *
     * 必须要移除，不然会造成内存泄漏
     */
    public static void remove() {
        requrestHolder.remove();
    }


}
